home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / VISCAFE.BIN / DefaultDataSource.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-19  |  7.7 KB  |  326 lines

  1. package symantec.itools.db.awt;
  2.  
  3. import java.awt.Event;
  4. import java.awt.Image;
  5.  
  6. public class DefaultDataSource implements DataSource {
  7.    Matrix data;
  8.    Grid view;
  9.    boolean useDefault;
  10.    boolean autoNumber;
  11.    int first;
  12.    Data defaultValue;
  13.  
  14.    public DefaultDataSource(Grid var1) {
  15.       this(var1, false, (Data)null);
  16.    }
  17.  
  18.    public DefaultDataSource(Grid var1, boolean var2) {
  19.       this(var1, var2, (Data)null);
  20.    }
  21.  
  22.    public DefaultDataSource(Grid var1, boolean var2, Data var3) {
  23.       this.data = new Matrix();
  24.       this.useDefault = false;
  25.       this.autoNumber = false;
  26.       this.setGrid(var1);
  27.       this.useDefault = var2;
  28.       if (var2) {
  29.          this.defaultValue = (Data)(var3 != null ? var3 : new DefaultData(this));
  30.       }
  31.  
  32.    }
  33.  
  34.    public int rows() {
  35.       return this.data.rows();
  36.    }
  37.  
  38.    public int fetchAllRows() {
  39.       return this.data.rows();
  40.    }
  41.  
  42.    public void fetchMode(boolean var1) {
  43.    }
  44.  
  45.    public Grid getView() {
  46.       return this.view;
  47.    }
  48.  
  49.    public int validDataRowRange(int var1, int var2) throws DataNotAvailable {
  50.       int var3 = this.data.rows();
  51.       if (var3 <= var1) {
  52.          throw new DataNotAvailable("Requested top=" + var1 + " but only " + var3 + " available");
  53.       } else {
  54.          return Math.min(var3 - 1, var2);
  55.       }
  56.    }
  57.  
  58.    public void setCurrentRow(int var1) throws TypeNotSupported {
  59.    }
  60.  
  61.    public void doAutoNumbering(boolean var1) {
  62.       this.doAutoNumbering(var1, this.first);
  63.    }
  64.  
  65.    public void doAutoNumbering(boolean var1, int var2) {
  66.       this.autoNumber = var1;
  67.       this.first = var2;
  68.       if (!this.useDefault && var1) {
  69.          this.useDefault = true;
  70.          this.defaultValue = new ImageStringData(this);
  71.       }
  72.  
  73.    }
  74.  
  75.    public void commitData() throws TypeNotSupported {
  76.    }
  77.  
  78.    public void setDefaultData() {
  79.       if (this.defaultValue == null) {
  80.          this.setDefaultData(new DefaultData(this));
  81.       }
  82.  
  83.    }
  84.  
  85.    public void setDefaultData(Data var1) {
  86.       this.useDefault = true;
  87.       this.autoNumber = false;
  88.       this.defaultValue = var1;
  89.    }
  90.  
  91.    public Data getDefaultData() {
  92.       if (this.defaultValue == null) {
  93.          throw new NullPointerException("Default data value not set");
  94.       } else {
  95.          return this.defaultValue;
  96.       }
  97.    }
  98.  
  99.    public void setGrid(Grid var1) {
  100.       this.view = var1;
  101.    }
  102.  
  103.    public boolean supportsMeta() {
  104.       return false;
  105.    }
  106.  
  107.    public void setupGrid(Grid var1) throws TypeNotSupported {
  108.       throw new TypeNotSupported("DefaultDataSource does not support meta information");
  109.    }
  110.  
  111.    public Data readData(int var1, int var2) throws DataNotAvailable {
  112.       return this.getData(var1, var2);
  113.    }
  114.  
  115.    public Data getData(Coordinate var1) throws DataNotAvailable {
  116.       return this.getData(var1.row, var1.col);
  117.    }
  118.  
  119.    public Data getData(int var1, int var2) throws DataNotAvailable {
  120.       try {
  121.          return (Data)this.data.elementAt(var1, var2);
  122.       } catch (NullPointerException var8) {
  123.          if (this.autoNumber) {
  124.             int var4 = this.view.rowState(var1 + 1);
  125.             this.defaultValue.setText(Integer.toString(var1 + this.first));
  126.             if (var4 == 2) {
  127.                this.defaultValue.appendChar('*');
  128.             }
  129.  
  130.             if (this.view.relation != null) {
  131.                DbDataSource var5 = (DbDataSource)this.view.dataSource;
  132.                DbaDataStore var6 = (DbaDataStore)var5.store;
  133.                String var7 = this.defaultValue.toString();
  134.                if (var6.isCurrentRow(var1 + 1)) {
  135.                   this.defaultValue.setText('<' + var7 + '>');
  136.                }
  137.             }
  138.  
  139.             return this.defaultValue;
  140.          } else if (this.useDefault) {
  141.             if (this.defaultValue instanceof DefaultData) {
  142.                ((DefaultData)this.defaultValue).setRowAndCol(var1, var2);
  143.             }
  144.  
  145.             return this.defaultValue;
  146.          } else {
  147.             throw var8;
  148.          }
  149.       }
  150.    }
  151.  
  152.    public void setData(Coordinate var1, Data var2) throws TypeNotSupported {
  153.       this.setData(var1.row, var1.col, var2);
  154.    }
  155.  
  156.    public void setData(int var1, int var2, Data var3) throws TypeNotSupported {
  157.       this.data.updateElement(var1, var2, var3);
  158.    }
  159.  
  160.    public String getText(Coordinate var1) throws DataNotAvailable {
  161.       return this.getData(var1.row, var1.col).toString();
  162.    }
  163.  
  164.    public boolean supports(Coordinate var1, int var2) {
  165.       return var2 == 1 || var2 == 2 || var2 == 3;
  166.    }
  167.  
  168.    public Image getImage(Coordinate var1) throws DataNotAvailable {
  169.       Data var2 = (Data)this.data.elementAt(var1.row, var1.col);
  170.       return var2.toImage();
  171.    }
  172.  
  173.    public boolean handleEvent(Event var1) {
  174.       if (var1.arg instanceof TableCell) {
  175.          TableCell var2 = (TableCell)var1.arg;
  176.  
  177.          Data var3;
  178.          try {
  179.             var3 = var2.getData();
  180.          } catch (DataNotAvailable var5) {
  181.             return false;
  182.          }
  183.  
  184.          switch (var1.id) {
  185.             case 54:
  186.                var3.rollback();
  187.                break;
  188.             case 1005:
  189.                try {
  190.                   var3.commit();
  191.                } catch (TypeNotSupported var4) {
  192.                }
  193.          }
  194.       }
  195.  
  196.       return false;
  197.    }
  198.  
  199.    public void handleException(int var1, int var2, Exception var3) {
  200.       this.view.handleException(var1, var2, var3);
  201.    }
  202.  
  203.    public void undeleteRow(int var1) throws TypeNotSupported {
  204.       throw new TypeNotSupported("Undelete not supported in DefaultDataSource");
  205.    }
  206.  
  207.    public void deleteRow(int var1) throws TypeNotSupported {
  208.       this.data.removeRow(var1);
  209.    }
  210.  
  211.    public void insertRow(int var1) throws TypeNotSupported {
  212.       this.data.insertRow(var1);
  213.    }
  214.  
  215.    public int appendRow() throws TypeNotSupported {
  216.       this.data.insertRow(this.data.rows());
  217.       return this.data.rows() - 1;
  218.    }
  219.  
  220.    public int rowState(int var1) {
  221.       return 0;
  222.    }
  223.  
  224.    public void clear() {
  225.       this.data.removeAllElements();
  226.    }
  227.  
  228.    public void refresh() {
  229.    }
  230.  
  231.    public void save() {
  232.    }
  233.  
  234.    public void undoRow(int var1) throws TypeNotSupported {
  235.    }
  236.  
  237.    Data fetchData(int var1, int var2) {
  238.       if (this.data.contains(var1, var2)) {
  239.          return (Data)this.data.elementAt(var1, var2);
  240.       } else {
  241.          ImageStringData var3 = new ImageStringData(this);
  242.          this.data.updateElement(var1, var2, var3);
  243.          return var3;
  244.       }
  245.    }
  246.  
  247.    public boolean isDataEditable(int var1, int var2) {
  248.       return true;
  249.    }
  250.  
  251.    public int type(int var1, int var2) {
  252.       return 1;
  253.    }
  254.  
  255.    public void rollbackCurrentData() {
  256.    }
  257.  
  258.    public void rollback(int var1, int var2) {
  259.    }
  260.  
  261.    public void commit(int var1, int var2) {
  262.    }
  263.  
  264.    public boolean supportsChoice(int var1, int var2) {
  265.       return false;
  266.    }
  267.  
  268.    public Data[] getChoices(int var1, int var2) throws TypeNotSupported {
  269.       throw new TypeNotSupported();
  270.    }
  271.  
  272.    public void setText(int var1, int var2, String var3) {
  273.       this.fetchData(var1, var2).setText(var3);
  274.    }
  275.  
  276.    public void insertChar(int var1, int var2, int var3, char var4) {
  277.       this.fetchData(var1, var2).insertChar(var3, var4);
  278.    }
  279.  
  280.    public void setText(int var1, int var2, char var3) {
  281.       this.fetchData(var1, var2).setText(var3);
  282.    }
  283.  
  284.    public void appendChar(int var1, int var2, char var3) {
  285.       this.fetchData(var1, var2).appendChar(var3);
  286.    }
  287.  
  288.    public void clearText(int var1, int var2) {
  289.       if (this.data.contains(var1, var2)) {
  290.          ((Data)this.data.elementAt(var1, var2)).clearText();
  291.       }
  292.  
  293.    }
  294.  
  295.    public void deleteChar(int var1, int var2, int var3) {
  296.       if (this.data.contains(var1, var2)) {
  297.          ((Data)this.data.elementAt(var1, var2)).deleteChar(var3);
  298.       }
  299.  
  300.    }
  301.  
  302.    public String subString(int var1, int var2, int var3, int var4) {
  303.       if (this.data.contains(var1, var2)) {
  304.          return ((Data)this.data.elementAt(var1, var2)).subString(var3, var4);
  305.       } else {
  306.          throw new StringIndexOutOfBoundsException();
  307.       }
  308.    }
  309.  
  310.    public void setImage(int var1, int var2, Image var3) {
  311.       this.fetchData(var1, var2).setImage(var3);
  312.    }
  313.  
  314.    public String toString(int var1, int var2) {
  315.       return this.data.contains(var1, var2) ? ((Data)this.data.elementAt(var1, var2)).toString() : "";
  316.    }
  317.  
  318.    public Image toImage(int var1, int var2) {
  319.       return this.data.contains(var1, var2) ? ((Data)this.data.elementAt(var1, var2)).toImage() : null;
  320.    }
  321.  
  322.    public Object getSynchronizationObject() {
  323.       return this.data;
  324.    }
  325. }
  326.